A data communications network can be viewed as a collection of nodes which are interconnected through communications links. Nodes can be characterized as either end nodes or network nodes. A network node is a data processing system that provides certain functions within the network, such as transferring of messages between itself and its adjacent or neighboring nodes, selection of routes for messages to be transmitted to a distant end node and the furnishing of directory services to end nodes. End nodes are also data processing systems that typically provide fewer functions than network nodes while providing an interface between users and the remainder of the network. The links between nodes may be permanent links, such as owned or leased lines, or temporary links that are enabled only when needed. An example of a temporary link is a dial-up telephone connection made through a public or private telephone network.
A primary function of any data communications network is to allow messages to be distributed between different users of the network. A first or originating user wishing to send a message to a second or destination user must, of course, identify the destination user to the system and must include the user identification in control information which accompanies the message. The combination of the message, accompanying control information and any delimiters (prefixes and suffixes) is sometimes referred to as a distribution.
In a distribution services network, each user of the network may be identified by a two part user network name. The first part of the user name identifies a group to whom the user belongs. The second part of the user name identifies a single user within that group. Commonly, a user network name is created by concatenating an abbreviation or corruption of the user's department name with an abbreviation or corruption of the user's given name. For example, Kerr Chase in Personnel might be assigned a user name PER.KCHASE.
The group name must be unique within the network. The user identifier must only be unique within each group. For example, it would be permissible to have different people with the same KCHASE user identifier as long they were in different groups.
Network users are served by distribution service units (DSU) identified by a two part, concatenated location or DSU name. The first part of the DSU name identifies the network including the DSU. The second part of the DSU name identifies a particular DSU within that network. For example, a DSU name EUR.PARSYS1 identifies a PARSYS1 DSU in an EUR network. The network identifier must, of course, be unique within a set of interconnected networks. The DSU identifier must only be unique within the specific network in which it is located.
A first network user who wishes to send a message to a second network user does not have to know the name of the DSU which supports the second user; that is, does not actually have to know the physical location of the user. The first user need only know the second user's network name.
To correlate or map user network names to the names of DSU's which serve those users, DSU's include user directories. In its most basic form, a user directory contains the network name of every user served by the interconnected networks. Each name is associated with or mapped to the name of the destination DSU which serves that user. When a message is submitted to the network, the DSU serving the message originator extracts the destination user network name from the message. The user directory is accessed to identify the destination DSU serving the destination user. Both the destination user and the destination DSU serving that user are identified in the control information used to route the message through the networks.
A problem in any network is that the configuration of the network is rarely static. Nodes may be added, removed or merged. Users may move from one node to another either permanently or on a temporary basis. If an originating user cannot be obtain a current, correct network address for an intended destination user, a message sent by the originating user may fail to reach the destination user. The message may be misdelivered, shunted into an electronic limbo or returned to the sender. Any of these occurrences is a nonproductive use of network resources.
To at least partially solve the problem, it is known to use an intervention list at one or more intervening nodes in a network. Each intervention list includes one or more entries, identifying a particular destination DSU. If a message received at the node is found to be addressed to a destination DSU on the intervention list, the intervening DSU extracts the destination user's name from the message and performs a directory lookup to see if a different destination DSU is identified for that destination user. If a different destination DSU has been defined, the message will be redirected to the different DSU.
Intervention lists are used frequently where two old nodes in a network are merged into a single new node. Messages initially addressed to users thought to be at the old node are intercepted at a node on the message path. The intervention list at the intercepting node causes the messages to be redirected to the same users, but at the new node.
Intervention lists are also used where specific users are assigned temporarily to another node. If the assignment is temporary, the intervention list may be used to redirect messages to the user's temporary DSU for the duration of the assignment instead of assigning a new network name to the user. If the assignment is permanent, the intervention list may still be used to redirect messages during an interim period while the user's new network address is being propagated to user directories throughout the system.
Known intervention lists, as described above, can perform only very limited redirection of messages. Messages can be re-directed only on the basis of the destination DSU name. Messages cannot be selectively intercepted based on user (agent) names and cannot be delivered to a user (agent) other than that specified by the originator.